/**
 *
 * @author Pablo Javier Vidal
 */

package agentes09.agentes;


import agentes09.gestor.behaviours.ResponderEventoDeControl;
import agentes09.negotiation.behaviours.NegociacionCamion;
import agentes09.negotiation.behaviours.NegociacionCamionGasolinera;
import jade.core.Agent;
import jade.domain.DFService;
import jade.domain.FIPAAgentManagement.DFAgentDescription;
import jade.domain.FIPAAgentManagement.ServiceDescription;
import jade.domain.FIPAException;

/**
 *
 * @author Administrador
 */
public class AgenteCamion extends AgenteConEstado{

    @Override
    protected void setup() {
        super.setup();
        registrarEnDF();
        System.out.println("El agente "+ getAID().getName()  + "  esta preparado");
// No se pueden tener 2 procesadores de mensajes porque se borran los mensajes de la cola...
// Los junto en 1 solo negociador        
//        addBehaviour(new NegociacionCamion());
        addBehaviour(new NegociacionCamionGasolinera());
		addBehaviour(new ResponderEventoDeControl());
    }

    /**
     * Este metodo registra al agente camion en el DF
     */
    private void registrarEnDF() {
        DFAgentDescription dfd = new DFAgentDescription();
        dfd.setName(getAID());
        ServiceDescription sd = new ServiceDescription();
        sd.setType("camion");
        sd.setName(getLocalName());
        dfd.addServices(sd);
        try {
            DFService.register(this, dfd);
        } catch (FIPAException fe) {
            fe.printStackTrace();
        }
    }

}
